package com.itcam.daijia.payment.config;

import com.wechat.pay.java.core.RSAAutoCertificateConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConfigurationProperties(prefix = "wx.v3pay") //读取节点
@Data
public class WxPayV3Properties {

    private String appid;
    /** 商户号 */
    public String merchantId;
    /** 商户API私钥路径 */
    public String privateKeyPath;
    /** 商户证书序列号 */
    public String merchantSerialNumber;
    /** 商户APIV3密钥 */
    public String apiV3key;
    /** 回调地址 */
    private String notifyUrl;

    /**
     * 创建并获取一个 RSAAutoCertificateConfig 对象，用于配置微信支付 V3 的自动证书
     *
     * @return 配置好的 RSAAutoCertificateConfig 对象
     */
    @Bean
    public RSAAutoCertificateConfig getConfig() {
        // 创建一个 RSAAutoCertificateConfig 对象的构建器
        return new RSAAutoCertificateConfig.Builder()
                // 设置商户号
                .merchantId(this.getMerchantId())
                // 设置商户API私钥路径
                .privateKeyFromPath(this.getPrivateKeyPath())
                // 设置商户证书序列号
                .merchantSerialNumber(this.getMerchantSerialNumber())
                // 设置商户APIV3密钥
                .apiV3Key(this.getApiV3key())
                // 构建并返回 RSAAutoCertificateConfig 对象
                .build();
    }

}
